package com.hyxt.DO;



import java.io.Serializable;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Project: CNPC_VMS
 * @Title: 定位数据
 * @Description: 定位数据
 * @author: yangjl
 * @date: 2014年4月23日 下午9:34:28
 * @company: Beijing Huayou Information andCommunication Technology Co.,Ltd
 * @Copyright: Copyright (c) 2014
 * @version V2.0
 */

public class GPSInfo extends TransferData implements Serializable {

	/**
	 *    
	 */
	private static final long serialVersionUID = -4684006377416720485L;
	/**
	 * 定位编号
	 */    
	private int locID;
	/**
	 * 车辆ID
	 */
	private String vehicleID;
	/**
	 * 组织编号
	 */
	private String gCode;
	/**
	 * 采集时间
	 */
	private Date gTime;

	/**
	 * 经度
	 */
	private double lon;
	/**
	 * 纬度
	 */
	private double lat;
	/**
	 * 海拔
	 */
	private double alt;
	/**
	 * 方向
	 */
	private int direction;
	/**
	 * 速度
	 */
	private float speed;
	/**
	 * 通讯卡号
	 */
	private String sim;
	/**
	 * 终端号
	 */
	private String terminalID;
	/**
	 * 里程
	 */
	private double mileage;
	/**
	 * 状态
	 */
	private int status;
	/**
	 * ACC标识
	 */
	private boolean accFlag;

	/**
	 * 电瓶状态
	 */
	private String wiringStatus;
	/**
	 * 电源状态
	 */
	private String powerSupplyStatus;
	/**
	 * 开关状态
	 */
	private String onOff;
	/**
	 * 电池状态
	 */
	private String batteryStatus;
	/**
	 * 位置编号
	 */
	private String locationID;
	/**
	 * 位置名称
	 */
	private String locatoinName;
	/**
	 * 详细位置名称
	 */
	private String locationDetailName;
	/**
	 * 加密经度
	 */
	private double elon;
	/**
	 * 加密纬度
	 */
	private double elat;
	/**
	 * 油量
	 */
	private double fuel;
	/**
	 * 行驶记录仪速度
	 */
	private float driveSpeed;
	/**
	 * 终端类型
	 */
	private String terminalType;
	/**
	 * 报警标识
	 */
	private long alarmTag;
	/**
	 * 定位标识
	 */
	private int locationFlag;
	/**
	 * 位移标识
	 */
	private int moveFlag;
	/**
	 * 主驾驶员编号
	 */
	private int driverId;
	/**
	 * 主驾驶员姓名
	 */
	private int driverName;
	/**
	 * 副驾驶员编号
	 */
	private int sDirverId;
	/**
	 * 副驾驶员编号
	 */
	private int sDirverName;
	/**
	 * 车牌号
	 */
	private String vehicleNumber;
	/**
	 * 仰角
	 */
	private int elevation;

	/**
	 * 上传数据类型
	 */

	private int uploadType;
	/**
	 * 车辆状态类型
	 */
	private String velstaType;
	/**
	 * 位置信息
	 */
	private String localInfo;
	/**
	 * 距离
	 */
	private double distance;
	/**
	 * 超速报警附加值
	 */
	private int overspeedValue;
	/**
	 * 进出区域,路线报警附加值
	 */
	private int areawarnValue;

	/**
	 * 在线时长
	 */

	private int holdTime;
	/**
	 * 预警值
	 */
	private int drivetimewarnValue;

	/**
	 * 未定值
	 */
	private int unifiedCoding;

	private String address;

	private double dayMileage;

	private double dayOilConsum;
	
	private double allOilConsum;

	/**
	 * @Description 获取address属性
	 */
	public String getAddress() {
		return address;
	}

	/**
	 * @Description 设置address属性
	 */
	public void setAddress(String address) {
		this.address = address;
	}

	/**
	 * @Description 获取locID属性
	 */
	public int getLocID() {
		return locID;
	}

	/**
	 * @Description 设置locID属性
	 */
	public void setLocID(int locID) {
		this.locID = locID;
	}

	/**
	 * @Description 获取vehicleID属性
	 */
	public String getVehicleID() {
		return vehicleID;
	}

	/**
	 * @Description 设置vehicleID属性
	 */
	public void setVehicleID(String vehicleID) {
		this.vehicleID = vehicleID;
		this.setId(vehicleID);
	}

	/**
	 * @Description 获取gCode属性
	 */
	public String getgCode() {
		return gCode;
	}

	/**
	 * @Description 设置gCode属性
	 */
	public void setgCode(String gCode) {
		this.gCode = gCode;
	}

	/**
	 * @Description 获取gTime属性
	 */
	public Date getgTime() {
		return gTime;
	}

	/**
	 * @Description 设置gTime属性
	 */
	public void setgTime(Date gTime) {
		this.gTime = gTime;
	}

	/**
	 * @Description 获取lon属性
	 */
	public double getLon() {
		return lon;
	}

	/**
	 * @Description 设置lon属性
	 */
	public void setLon(double lon) {
		this.lon = lon;
	}

	/**
	 * @Description 获取lat属性
	 */
	public double getLat() {
		return lat;
	}

	/**
	 * @Description 设置lat属性
	 */
	public void setLat(double lat) {
		this.lat = lat;
	}

	/**
	 * @Description 获取alt属性
	 */
	public double getAlt() {
		return alt;
	}

	/**
	 * @Description 设置alt属性
	 */
	public void setAlt(double alt) {
		this.alt = alt;
	}

	/**
	 * @Description 获取direction属性
	 */
	public int getDirection() {
		return direction;
	}

	/**
	 * @Description 设置direction属性
	 */
	public void setDirection(int direction) {
		this.direction = direction;
	}

	/**
	 * @Description 获取speed属性
	 */
	public float getSpeed() {
		return speed;
	}

	/**
	 * @Description 设置speed属性
	 */
	public void setSpeed(float speed) {
		this.speed = speed;
	}

	/**
	 * @Description 获取sim属性
	 */
	public String getSim() {
		return sim;
	}

	/**
	 * @Description 设置sim属性
	 */
	public void setSim(String sim) {
		this.sim = sim;
	}

	/**
	 * @Description 获取terminalID属性
	 */
	public String getTerminalID() {
		return terminalID;
	}

	/**
	 * @Description 设置terminalID属性
	 */
	public void setTerminalID(String terminalID) {
		this.terminalID = terminalID;
	}

	/**
	 * @Description 获取mileage属性
	 */
	public double getMileage() {
		return mileage;
	}

	/**
	 * @Description 设置mileage属性
	 */
	public void setMileage(double mileage) {
		this.mileage = mileage;
	}

	/**
	 * @Description 获取status属性
	 */
	public int getStatus() {
		return status;
	}

	/**
	 * @Description 设置status属性
	 */
	public void setStatus(int status) {
		this.status = status;
	}
	
	public boolean isAccFlag() {
		return accFlag;
	}

	public void setAccFlag(boolean accFlag) {
		this.accFlag = accFlag;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	/**
	 * @Description 获取wiringStatus属性
	 */
	public String getWiringStatus() {
		return wiringStatus;
	}

	/**
	 * @Description 设置wiringStatus属性
	 */
	public void setWiringStatus(String wiringStatus) {
		this.wiringStatus = wiringStatus;
	}

	/**
	 * @Description 获取powerSupplyStatus属性
	 */
	public String getPowerSupplyStatus() {
		return powerSupplyStatus;
	}

	/**
	 * @Description 设置powerSupplyStatus属性
	 */
	public void setPowerSupplyStatus(String powerSupplyStatus) {
		this.powerSupplyStatus = powerSupplyStatus;
	}

	/**
	 * @Description 获取onOff属性
	 */
	public String getOnOff() {
		return onOff;
	}

	/**
	 * @Description 设置onOff属性
	 */
	public void setOnOff(String onOff) {
		this.onOff = onOff;
	}

	/**
	 * @Description 获取batteryStatus属性
	 */
	public String getBatteryStatus() {
		return batteryStatus;
	}

	/**
	 * @Description 设置batteryStatus属性
	 */
	public void setBatteryStatus(String batteryStatus) {
		this.batteryStatus = batteryStatus;
	}

	/**
	 * @Description 获取locationID属性
	 */
	public String getLocationID() {
		return locationID;
	}

	/**
	 * @Description 设置locationID属性
	 */
	public void setLocationID(String locationID) {
		this.locationID = locationID;
	}

	/**
	 * @Description 获取locatoinName属性
	 */
	public String getLocatoinName() {
		return locatoinName;
	}

	/**
	 * @Description 设置locatoinName属性
	 */
	public void setLocatoinName(String locatoinName) {
		this.locatoinName = locatoinName;
	}

	/**
	 * @Description 获取locationDetailName属性
	 */
	public String getLocationDetailName() {
		return locationDetailName;
	}

	/**
	 * @Description 设置locationDetailName属性
	 */
	public void setLocationDetailName(String locationDetailName) {
		this.locationDetailName = locationDetailName;
	}

	/**
	 * @Description 获取elon属性
	 */
	public double getElon() {
		return elon;
	}

	/**
	 * @Description 设置elon属性
	 */
	public void setElon(double elon) {
		this.elon = elon;
	}

	/**
	 * @Description 获取elat属性
	 */
	public double getElat() {
		return elat;
	}

	/**
	 * @Description 设置elat属性
	 */
	public void setElat(double elat) {
		this.elat = elat;
	}

	/**
	 * @Description 获取fuel属性
	 */
	public double getFuel() {
		return fuel;
	}

	/**
	 * @Description 设置fuel属性
	 */
	public void setFuel(double fuel) {
		this.fuel = fuel;
	}

	/**
	 * @Description 获取driveSpeed属性
	 */
	public float getDriveSpeed() {
		return driveSpeed;
	}

	/**
	 * @Description 设置driveSpeed属性
	 */
	public void setDriveSpeed(float driveSpeed) {
		this.driveSpeed = driveSpeed;
	}

	/**
	 * @Description 获取terminalType属性
	 */
	public String getTerminalType() {
		return terminalType;
	}

	/**
	 * @Description 设置terminalType属性
	 */
	public void setTerminalType(String terminalType) {
		this.terminalType = terminalType;
	}

	/**
	 * @Description 获取alarmTag属性
	 */
	public long getAlarmTag() {
		return alarmTag;
	}

	/**
	 * @Description 设置alarmTag属性
	 */
	public void setAlarmTag(long alarmTag) {
		this.alarmTag = alarmTag;
	}

	/**
	 * @Description 获取locationFlag属性
	 */
	public int getLocationFlag() {
		return locationFlag;
	}

	/**
	 * @Description 设置locationFlag属性
	 */
	public void setLocationFlag(int locationFlag) {
		this.locationFlag = locationFlag;
	}

	/**
	 * @Description 获取moveFlag属性
	 */
	public int getMoveFlag() {
		return moveFlag;
	}

	/**
	 * @Description 设置moveFlag属性
	 */
	public void setMoveFlag(int moveFlag) {
		this.moveFlag = moveFlag;
	}

	/**
	 * @Description 获取driverId属性
	 */
	public int getDriverId() {
		return driverId;
	}

	/**
	 * @Description 设置driverId属性
	 */
	public void setDriverId(int driverId) {
		this.driverId = driverId;
	}

	/**
	 * @Description 获取driverName属性
	 */
	public int getDriverName() {
		return driverName;
	}

	/**
	 * @Description 设置driverName属性
	 */
	public void setDriverName(int driverName) {
		this.driverName = driverName;
	}

	/**
	 * @Description 获取sDirverId属性
	 */
	public int getsDirverId() {
		return sDirverId;
	}

	/**
	 * @Description 设置sDirverId属性
	 */
	public void setsDirverId(int sDirverId) {
		this.sDirverId = sDirverId;
	}

	/**
	 * @Description 获取sDirverName属性
	 */
	public int getsDirverName() {
		return sDirverName;
	}

	/**
	 * @Description 设置sDirverName属性
	 */
	public void setsDirverName(int sDirverName) {
		this.sDirverName = sDirverName;
	}

	/**
	 * @Description 获取vehicleNumber属性
	 */
	public String getVehicleNumber() {
		return vehicleNumber;
	}

	/**
	 * @Description 设置vehicleNumber属性
	 */
	public void setVehicleNumber(String vehicleNumber) {
		this.vehicleNumber = vehicleNumber;
	}

	/**
	 * @Description 获取elevation属性
	 */
	public int getElevation() {
		return elevation;
	}

	/**
	 * @Description 设置elevation属性
	 */
	public void setElevation(int elevation) {
		this.elevation = elevation;
	}

	/**
	 * @Description 获取uploadType属性
	 */
	public int getUploadType() {
		return uploadType;
	}

	/**
	 * @Description 设置uploadType属性
	 */
	public void setUploadType(int uploadType) {
		this.uploadType = uploadType;
	}

	/**
	 * @Description 获取velstaType属性
	 */
	public String getVelstaType() {
		return velstaType;
	}

	/**
	 * @Description 设置velstaType属性
	 */
	public void setVelstaType(String velstaType) {
		this.velstaType = velstaType;
	}

	/**
	 * @Description 获取localInfo属性
	 */
	public String getLocalInfo() {
		return localInfo;
	}

	/**
	 * @Description 设置localInfo属性
	 */
	public void setLocalInfo(String localInfo) {
		this.localInfo = localInfo;
	}

	/**
	 * @Description 获取distance属性
	 */
	public double getDistance() {
		return distance;
	}

	/**
	 * @Description 设置distance属性
	 */
	public void setDistance(double distance) {
		this.distance = distance;
	}

	/**
	 * @Description 获取overspeedValue属性
	 */
	public int getOverspeedValue() {
		return overspeedValue;
	}

	/**
	 * @Description 设置overspeedValue属性
	 */
	public void setOverspeedValue(int overspeedValue) {
		this.overspeedValue = overspeedValue;
	}

	/**
	 * @Description 获取areawarnValue属性
	 */
	public int getAreawarnValue() {
		return areawarnValue;
	}

	/**
	 * @Description 设置areawarnValue属性
	 */
	public void setAreawarnValue(int areawarnValue) {
		this.areawarnValue = areawarnValue;
	}

	/**
	 * @Description 获取holdTime属性
	 */
	public int getHoldTime() {
		return holdTime;
	}

	/**
	 * @Description 设置holdTime属性
	 */
	public void setHoldTime(int holdTime) {
		this.holdTime = holdTime;
	}

	/**
	 * @Description 获取drivetimewarnValue属性
	 */
	public int getDrivetimewarnValue() {
		return drivetimewarnValue;
	}

	/**
	 * @Description 设置drivetimewarnValue属性
	 */
	public void setDrivetimewarnValue(int drivetimewarnValue) {
		this.drivetimewarnValue = drivetimewarnValue;
	}

	/**
	 * @Description 获取unifiedCoding属性
	 */
	public int getUnifiedCoding() {
		return unifiedCoding;
	}

	/**
	 * @Description 设置unifiedCoding属性
	 */
	public void setUnifiedCoding(int unifiedCoding) {
		this.unifiedCoding = unifiedCoding;
	}

	/**
	 * @return the dayMileage
	 */
	public double getDayMileage() {
		return dayMileage;
	}

	/**
	 * @param dayMileage
	 *            the dayMileage to set
	 */
	public void setDayMileage(double dayMileage) {
		this.dayMileage = dayMileage;
	}

	/**
	 * @Description 获取dayOilConsum属性
	 */
	public double getDayOilConsum() {
		return dayOilConsum;
	}

	/**
	 * @Description 设置dayOilConsum属性
	 */
	public void setDayOilConsum(double dayOilConsum) {
		this.dayOilConsum = dayOilConsum;
	}

	/**
	 * @Description 获取allOilConsum属性
	 */
	public double getAllOilConsum() {
		return allOilConsum;
	}

	/**
	 * @Description 设置allOilConsum属性
	 */
	public void setAllOilConsum(double allOilConsum) {
		this.allOilConsum = allOilConsum;
	}

	/**
	 * @Description:HBase入库字符串 统一编码|时间|加密后经度|加密后纬度|海拔|速度|里程|仰角| 方向|上传数据类型|车辆报警类型
	 *                         | 车辆状态类型|原始经度|原始纬度|位置信息
	 *                         |距离|油量|行驶记录仪速度|超速报警附加值|进出区域 、路线报警附加值|
	 *                         路线行驶时间不足、过长报警附加值|
	 */
	public String toHBaseString() {
		DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
		DecimalFormat decFormat = new DecimalFormat("#0.000000");
		StringBuilder builder = new StringBuilder();

		return builder.append(this.getVehicleID()).append("|") // 车辆ID 
				.append(dateFormat.format(this.getgTime())).append("|")// 时间
				.append(decFormat.format(this.getElon())).append("|")// 加密后经度
				.append(decFormat.format(this.getElat())).append("|")// 加密后纬度
				.append(this.getAlt()).append("|")// 海拔
				.append(this.getSpeed()).append("|")// 速度
				.append(this.getMileage()).append("|")// 里程
				.append(this.getElevation()).append("|")// 仰角
				.append(this.getDirection()).append("|")// 方向
				.append(this.getUploadType()).append("|")// 上传数据类型
				.append(this.getAlarmTag()).append("|")// 车辆报警类型
				.append(this.getStatus()).append("|")// 车辆状态类型
				.append(decFormat.format(this.getLon())).append("|")// 原始经度
				.append(decFormat.format(this.getLat())).append("|")// 原始纬度
				.append(this.getLocationID()).append("|")// 位置编号
				.append(this.getDistance()).append("|")// 距离
				.append(this.getFuel()).append("|")// 油量
				.append(this.getDriveSpeed()).append("|")// 行驶记录仪速度
				.append(this.getOverspeedValue()).append("|")// 超速报警附加值
				.append(this.getAreawarnValue()).append("|")// 进出区域、路线报警附加值
				.append(this.getDrivetimewarnValue()).append("|")// 路线行驶时间不足、过长报警附加值
				.append(this.getgCode()).append("|") // 组织编号
				.append(this.getTerminalType()).append("|") // 终端类型
				.append(this.getAddress()).append("|").toString(); // 中文地址
	}



	
}
